export function deepFilter(list, fn) {
  // 使用filter 过滤当前层的数组
  return list.filter(item => {
    // filter其实也是遍历
    // 把当前遍历的节点的children 也调用一次 deepFilter 函数，返回过滤后的数组重新赋值
    if (item.children && item.children.length)
      item.children = deepFilter(item.children, fn)
    // 最后判断当前节点是否符合过滤要求
    return fn(item) || item.children && item.children.length
  })
}

